package com.xjoyt.pay.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface LockMethod {

	/**
	 * 键名
	 * 
	 * @return
	 */
	String value() default "";

	/**
	 * 超时时间(单位：秒)
	 * 
	 * @return
	 */
	long timeout() default 0;

	/**
	 * 阻塞 。默认：false，非阻塞。 true：阻塞一个方法执行时，另一个方法等待 。false：非阻塞，一个方法执行时，另一个方法返回执行失败
	 * 
	 * @return
	 */
	boolean block() default false;

	/**
	 * 间隔时间
	 * 
	 * @return
	 */
	long interval() default 10;
}
